package com.example.dell.recyclerview_0503guojiuqi;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

/**
 * Created by dell on 2017/5/4.
 */

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
    List<ArticleBean>list;
    Context context;

    MyAdapter(Context context, List<ArticleBean>list){//构造方法，给属性赋值
        this.context=context;
        this.list=list;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //该方法主要生成为每个item创建出一个view，但是他返回的是viewHolder
        //该方法把view直接封装到ViewHolder里，然后我面面相的是ViewHolder这个实例
        View view= LayoutInflater.from(context).inflate(R.layout.item,parent,false);
        //inflate方法中的参数：多喝参数是要加载的item的布局
        //第二个参数是要给该布局外部在套一层父布局
        //第三个参数，通常设置为false
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        ArticleBean articleBean=list.get(position);//要显示list中的第position个数据，
        //所以讲该数据从list里获取出来
        if (articleBean==null) return;//如果有错误直接返回
        //如果没有错误，就应该把这个数据显示到holder所对应的view里
        holder.imageView.setImageResource(articleBean.getImgid());
        holder.textView_title.setText(articleBean.getTitle());
        holder.textView_time.setText(articleBean.getTime());
        holder.textView_description.setText(articleBean.getDescription());

        holder.button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                list.remove(position);
                notifyDataSetChanged();//通知适配器更新，刷新数据
                Toast.makeText(context,"delete sucess", Toast.LENGTH_SHORT).show();
            }
        });
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text=list.get(position).getTitle();
                Toast.makeText(context,"item clicked", Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    public int getItemCount() {//list里一共有多少个item数据，那么返回就是这个数目
        return list.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder{
        //ViewHolder顾名思义，就是view的管理者或持有者，或承载者，用于对item布局的承载
        //所以，在item布局中，添加的控件，都应该在这里声明和绑定
        ImageView imageView;
        TextView textView_title,textView_time,textView_description;
        Button button;

        public ViewHolder(View itemView) {
            super(itemView);
            imageView=(ImageView)itemView.findViewById(R.id.imageView);
            textView_description=(TextView)itemView.findViewById(R.id.textView2);
            textView_time=(TextView)itemView.findViewById(R.id.textView3);
            textView_title=(TextView)itemView.findViewById(R.id.textView);
            button=(Button)itemView.findViewById(R.id.button);
        }
    }
}
